#include "key.h"
#include "stm32f1xx_hal.h"
#include "stm32f1xx_hal_gpio.h"
//函数简介：九个按键扫描
//参数：无
//返回值：按键编号，0表示没有按键按下
//第1行-PA8,第二行-PA9,第三行-PA10，输出
//第1列-PA0,第二列-PA1,第三列-PA2，输入
unsigned char key_scan(void)
{
    uint16_t ROW[3]={GPIO_PIN_9,GPIO_PIN_10,GPIO_PIN_12};
    uint16_t COL[3]={GPIO_PIN_1,GPIO_PIN_2,GPIO_PIN_11};
    for(int i = 0; i < 3 ; i++)
    {
        //把第i+1行拉低
        HAL_GPIO_WritePin(GPIOA,ROW[i],GPIO_PIN_RESET);
        for(int j =0 ; j < 3 ; j++)
        {
            //检测第j+1列是否为低电平
            //如果检测到低电平，然后对应的按键编号
            if(!HAL_GPIO_ReadPin(GPIOA,COL[j]))
            {
                //把第i+1行拉高
                HAL_GPIO_WritePin(GPIOA,ROW[i],GPIO_PIN_SET);
                return i*3+j+1;
            }
        }
        //把第i+1行拉高
        HAL_GPIO_WritePin(GPIOA,ROW[i],GPIO_PIN_SET);

    }
    return 0;
}